perm filename CRYPT.LST[S1,ALS] blob
sn#487235 filedate 1979-12-05 generic text, type T, neo UTF8
PASCAL/SAIL 1.1 6-SEP-79 COMPILATION LIST PRODUCED ON 05-DEC-79 AT 08:53:32 PAGE 1
1 C;
PASCAL/SAIL 1.1 6-SEP-79 COMPILATION LIST PRODUCED ON 05-DEC-79 AT 08:53:32 PAGE 2
1 (* $A+,D+*)
2 PROGRAM CRYPT;
3 CONST MAXA = 3; MAXB = 5; MAXC = 6; MAXD = 15; LIM = 20;
4 VAR I, J, K, L,LA, LB, M, N, CAR, HIT : INTEGER;
5 A, B, C, D : ARRAY [0..LIM] OF INTEGER;
6 PROCEDURE TESTHIT;
7 BEGIN
8 K := MAXC;
9 WHILE C[K] = 0 DO K := K - 1;
10 L := LA;
11 FOR M := K DOWNTO 1 DO
12 BEGIN
13 L := L + 1; D[L] := C[M];
14 END;
15 HIT := 0;
16 FOR M := L DOWNTO LA DO
17 FOR N := M-1 DOWNTO 1 DO
18 IF D[M] = D[N] THEN HIT := HIT + 1;
19 END;
20 BEGIN (* MAIN PROGRAM*)
21 WRITELN (OUTPUT,'POSSIBLE SOLUTIONS');
22 WRITELN (OUTPUT);
23 FOR I := 1 TO MAXD DO
24 BEGIN
25 A[I] := 0; B[I] := 0; C[I] := 0; D[I] := 0;
26 END;
27 A[1] := 2; B[1] := 2; B[3] := 1; CAR := 0; I := 1; J := 3;
28 LB := 0; HIT := 0;
29 FOR M := J DOWNTO 1 DO
30 BEGIN
31 LB := LB + 1; D[LB] := B[M];
32 END;
33 WHILE CAR = 0 DO
34 BEGIN
35 LA := LB;
36 FOR M := I DOWNTO 1 DO
37 BEGIN
38 LA := LA + 1; D[LA] := A[M];
39 END;
40 FOR M := LA DOWN TO LB DO
***** ↑
1.↑: ILLEGAL SYMBOL
41 FOR N := M -1 DOWNTO 1 DO
42 IF D[M] = D[N] THEM HIT := 1;
***** ↑*********↑
1.↑: ILLEGAL SYMBOL
2.↑: "THEN" EXPECTED
43 K := J*2+I;
44 IF ((K < 11) AND (K > 7) AND (HIT=0)) THEN
45 BEGIN
46 IF (I + J) = 5 THEN (* PRODUCT CASE IS IN RANGE*)
47 BEGIN
48 FOR K := 1 TO MAXD DO C[K] := 0;
49 FOR M := 1 TO MAXA DO
50 FOR N := 1 TO MAXB DO
51 BEGIN
52 K := M + N - 1;
53 C[K] := A[M] * B[N] + C[K];
54 END;
55 FOR K := 2 TO MAXC DO
56 BEGIN
57 C[K] := C[K] + C[K-1] DIV 10;
58 C[K-1] := C[K-1] MOD 10;
59 END;
60 TESTHIT;
61 IF (HIT = 0) AND (L = 10) THEN
62 BEGIN
63 WRITE (TTY,L:5,HIT:2,' * '); BREAK;
64 FOR M := I DOWNTO 1 DO WRITE (OUTPUT,A[M]:1);
65 WRITE (OUTPUT,' * ');
66 FOR M := J DOWNTO 1 DO WRITE (OUTPUT,B[M]:1);
67 WRITE (OUTPUT,' = ');
68 FOR M := K DOWNTO 1 DO WRITE (OUTPUT,C[M]:1);
69 WRITELN (OUTPUT);
70 END;
71 END; (* PRODUCT CASE IN RANGE*)
72 FOR K := 1 TO MAXD DO C[K] := 0;
73 FOR K := 1 TO MAXC DO
74 BEGIN
75 C[K] := A[K] + B[K] + CAR;
76 CAR := C[K] DIV 10;
77 C[K] := C[K] MOD 10;
78 END;
79 TESTHIT;
80 IF (HIT = 0) AND (L = 10) THEN
81 BEGIN
82 WRITE (TTY,L:5,HIT:2,' + '); BREAK;
83 FOR M := I DOWNTO 1 DO WRITE (OUTPUT,A[M]:1);
84 WRITE (OUTPUT,' + ');
85 FOR M := J DOWNTO 1 DO WRITE (OUTPUT,B[M]:1);
86 WRITE (OUTPUT,' = ');
87 FOR M := K DOWNTO 1 DO WRITE (OUTPUT,C[M]:1);
88 WRITELN (OUTPUT);
89 END;
90 END; (*IF ((K < 11) AND (K > 7) AND (HIT=0)) *)
91 CAR := 1; HIT := 0;
92 FOR I := 1 TO MAXA DO
93 BEGIN
94 A[I] := A[I] + CAR;
95 CAR := A[I] DIV 10;
96 A[I] := A[I] MOD 10;
97 END;
98 I := MAXD;
99 WHILE A[I] = 0 DO I := I - 1;
100 IF I = J THEN IF A[I]> B[J] THEN CAR := 1;
101 IF CAR = 1 THEN
102 BEGIN (* CAR <> 0 *)
103 FOR I := 2 TO MAXD DO A[I] := 0;
104 I := 1;
105 A[I] := 2;
106 HIT := 1; CAR := 0;
107 WHILE ((HIT<>0) AND (CAR=0)) DO
108 BEGIN
109 CAR := 1;
110 FOR J := 1 TO MAXB DO
111 BEGIN
112 B[J] := B[J] + CAR;
113 CAR := B[J] DIV 10;
114 B[J] := B[J] MOD 10;
115 END;
116 J := MAXD;
117 WHILE B[J] = 0 DO J := J - 1;
118 LB := 0; HIT := 0;
119 FOR M := J DOWN TO 1 DO
***** ↑
1.↑: ILLEGAL SYMBOL
120 BEGIN
121 LB := LB + 1; D[LB] := B[M];
122 END;
123 FOR M := LB DOWNTO 2 DO
124 FOR N := M-1 DOWNTO 1 DO
125 IF D[M] = D[N] THEN HIT := 1;
126 END; (* WHILE HIT<>0 AND CAR=0 *)
127 END; (* IF CAR = 1 *)
128 END; (* WHILE CAR = 0 *)
129 END.
4 ERROR(S) DETECTED
RUNTIME: 00:00.447 ELAPSED: 00:00:02.7 3984 CHARS